﻿using System;
using System.Collections.Generic;
using System.Windows;
using Sonce.Editor.Data;

namespace Sonce.Editor
{
	public enum ToolTypes
	{
		Pan,
		Zoom,
		Hand,
		Text,
		Library,
		Node,
		Line,
		Rectangle,
	}

	public enum OrtoLines
	{
		/// <summary>
		/// Free line drawing.
		/// </summary>
		None,
		/// <summary>
		/// Straight orto line (only horizontal or vertical, not both).
		/// </summary>
		Angle90,
		/// <summary>
		/// Lines that form 45 degrees.
		/// </summary>
		Angle45,
		/// <summary>
		/// Lines that form 90 degrees (horizontal and vertical).
		/// </summary>
		Combo90,
		/// <summary>
		/// Lines that form 45 degrees.
		/// </summary>
		Combo45,
	}

	public enum NodeStyles
	{
		/// <summary>
		/// Default node style.
		/// </summary>
		Default,
		/// <summary>
		/// Node is drawn as rectangle.
		/// </summary>
		Square,
		/// <summary>
		/// Node is drawn as solid circle.
		/// </summary>
		Dot,
	}

	public enum LineTypes
	{
		/// <summary>
		/// Normal line.
		/// </summary>
		Line,
		/// <summary>
		/// Polyline.
		/// </summary>
		PolyLine,
		/// <summary>
		/// Reference line, length is unlimited.
		/// </summary>
		RefLine,
		//Arc,
		//Spline,
		//Bezier,
		//PolyBezier,
	}

	public enum TextTypes
	{
		SingleLine,
		//MultiLine,
		//RichMultiLine
	}

	public enum HandTypes
	{
		Select,
		Move,
		Resize,
	}

	public enum AlignDirections
	{
		Left,
		Right,
		Top,
		Bottom,
	}

	public enum SelectionMode
	{
		/// <summary>
		/// Only one item can be selected at the time.
		/// </summary>
		//Single,
		/// <summary>
		/// Multiple items can be selected. Previous selection is cleared.
		/// </summary>
		Multiple,
		/// <summary>
		/// Items are added to selection. Previous selection is preserved.
		/// </summary>
		Add,
		/// <summary>
		/// Items are removed from previous selection.
		/// </summary>
		Remove,
		/// <summary>
		/// Items are added or removed from previous selection.
		/// </summary>
		Toggle,
	}
}
